package com.ruoyi.common.utils.wst;

import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.mapper.UtilsMapper;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.ArrayList;
import java.util.List;

/**
 * @author jason
 * 部门数据过滤工具
 */
public class DeptDataFiltering {

    @Autowired
    private UtilsMapper utilsMapper;

//    /**
//     * 查看用户的部门信息
//     * @return
//     *   deptId 部门id
//     *   isParent 是否为父级部门
//     *   isAdmin 是否为超级管理员
//     */
//    public DataFiltter getUserDept(){
//        //是否为管理员
//        DataFiltter dataFiltter = new DataFiltter().setAdmin(SecurityUtils.isAdmin(SecurityUtils.getUserId()));
//        if (dataFiltter.isAdmin()){ //如果为超级管理员，直接返回结果，获取所有数据
//            return dataFiltter;
//        }else {
//            //获取当前用户部门id
//            Long deptId = SecurityUtils.getLoginUser().getDeptId();
//            //查看部门之下的所有子部门
//            SysDept sysDept = new SysDept();
//            sysDept.setDeptId(deptId);
//            try {
//                List<SysDept> list = utilsMapper.getDept(sysDept);
//            }catch (NullPointerException nullPointerException){ //如果没有子部门
//                dataFiltter.setDeptId(deptId);
//                return dataFiltter;//返回部门id,仅显示这个部门的数据
//            }
//            //如果有子部门，返回部门id isParent为true
//            dataFiltter.setParent(true);
//            dataFiltter.setDeptId(deptId);
//            }
//        return dataFiltter;
//        }
//
//    /**
//     * 获得全部所需要的的部门id
//     * @return
//     */
//    public List<SysDept> forDeptId(){
//        DataFiltter dataFiltter = getUserDept();
//        /**
//         * 超级管理员
//         */
//        if (dataFiltter.isAdmin()){
//            return null;
//        }else if (dataFiltter.isParent()){
//            /**
//             * 有子部门
//             */
//            while (true){
//                List<SysDept> list = new ArrayList<>();
//                DataFiltter chirdDataFiltter = new DataFiltter();
//
//                if (!dataFiltter.isParent()){
//                    return list;
//                }
//            }
//        }else {
//            /**
//             * 没有子部门
//             */
//            SysDept sysDept = new SysDept();
//            sysDept.setDeptId(dataFiltter.getDeptId());
//            List<SysDept> list = new ArrayList<>();
//            list.add(sysDept);
//            return list;
//        }
//
//    }
}
